Various forms of network-based storage systems are known today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc.
A network-based storage system typically includes at least one storage server, which is a processing system configured to store and retrieve data on behalf of one or more client processing systems (“clients”). In the context of NAS, a storage server may be a file server, which is sometimes called a “filer”. A filer operates on behalf of one or more clients to store and manage shared files. The files may be stored in a storage subsystem that includes one or more arrays of mass storage devices, such as magnetic or optical disks or tapes, by using RAID (Redundant Array of Inexpensive Disks). Hence, the mass storage devices in each array may be organized into one or more separate RAID groups.
In a SAN context, a storage server provides clients with block-level access to stored data, rather than file-level access. Some storage servers are capable of providing clients with both file-level access and block-level access, such as certain Filers made by Network Appliance, Inc. (NetApp®) of Sunnyvale, Calif.
Multiple instances of virtual storage servers may be created on a physical storage server. A virtual storage server is a functional and logical partitioning of network and storage resources of the physical storage server. Each virtual storage server is maintained and executed independent of other virtual storage servers on the same physical storage server. Storage server resources, such as units of storage and network addresses of network interfaces, may be grouped, partitioned and/or assigned to virtual storage server or servers in the physical storage server. Yet common storage server resources, such as a storage operating system, may be shared among the virtual storage servers. From a client's perspective, a virtual storage server includes all essential aspects of a physical storage server such as a network front-end to communicate with the client, a back-end to access and manage stored data, etc. A physical storage server on which one or more virtual storage servers are created may also be called a hosting storage server or host storage server. For the purposes of illustration, a physical storage server may also simply be referred as a storage server.
In storage servers, data is stored in logical containers called volumes, which may be identical with, or subsets of, aggregates. An “aggregate” is a logical container for a pool of storage, combining one or more physical mass storage devices (e.g., disks) or parts thereof into a single logical storage object, which contains or provides storage for one or more other logical data sets at a higher level of abstraction (e.g., volumes). A “volume” is a set of stored data associated with a collection of mass storage devices, such as disks, which obtains its storage from (i.e., is contained within, and may be coextensive with) an aggregate, and which is managed as an independent administrative unit, such as a complete file system. A sub-volume is a subset of a volume, such as a directory and all files under the directory, a file, etc. A “file system” is an independently managed, self-contained, hierarchal set of data units (e.g., files, blocks or Logical Unit Numbers). Although a volume or file system (as those terms are used herein) may store data in the form of files, that is not necessarily the case. That is, a volume or file system may store data in the form of other units, such as blocks or Logical Unit Numbers (LUNs).
Each virtual storage server is allocated dedicated and distinct units of storage resources, such as volumes or sub-volumes, and network addresses, such as Internet protocol addresses. Each virtual storage server is also allowed shared access to the common file system on behalf of its client system.
A storage server may be managed by one or more network storage administrators (also called “administrative users” or simply “administrators”), who are responsible for configuring, provisioning and monitoring the storage server, scheduling backups, troubleshooting problems with the storage server, performing software upgrades, etc. These management tasks can be accomplished by the administrator using a separate management console on the network, which is a computer system that runs storage management software application specifically designed to manage a distributed storage infrastructure. An example of such storage management software is DataFabric® Manager (DFM), made by NetApp.
Prior art network storage management software manages/monitors only the physical level of a storage server. This limits the usefulness of the management software for architectures that employ virtual storage servers.